package cn.fl.audit.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.audit.dto.AudPrjPassOpDTO;
import cn.fl.audit.vo.AudPrjPassOpVO;

 /**
 * @Description: 信审通过意见 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class AudPrjPassOpVOTransform {


	/**
	 * DTO 转  VO
	 * @param po AudPrjPassOpDTO
	 * @return AudPrjPassOpVO
	 */
	public static AudPrjPassOpVO toVO(AudPrjPassOpDTO dto) {
		AudPrjPassOpVO  vo = null;
		if (dto != null) { 
			vo = new AudPrjPassOpVO();
			vo.setId(dto.getId());
			vo.setProjectId(dto.getProjectId());//项目ID
			vo.setProIntId(dto.getProIntId());//流程实例ID
			vo.setAssetsProveCd1(dto.getAssetsProveCd1());//承租人资质 - 资产证明
			vo.setCreditInfo(dto.getCreditInfo());//法人/自然人- 信审资料
			vo.setQualificationsInfo(dto.getQualificationsInfo());//法人/自然人- 资质情况
			vo.setAssetsProveCd(dto.getAssetsProveCd());//家庭财产 - 资产证明
			vo.setResearchReport(dto.getResearchReport());//自然人- 调查报告显示
			vo.setBizInfo(dto.getBizInfo());//法人- 从事业务
			vo.setRegisterTm(dto.getRegisterTm());//注册时间
			vo.setTimes(dto.getTimes());//法人/自然人- 融资次数
			vo.setBadRecordInfo(dto.getBadRecordInfo());//法人/自然人- 不良情况
			vo.setCourtsEnforceInfo(dto.getCourtsEnforceInfo());//法人/自然人- 法院执行情况
			vo.setReturnPct(dto.getReturnPct());//收益率
			vo.setPolicyStandatrdsCd(dto.getPolicyStandatrdsCd());//执行政策标准-数据字典
			vo.setStandardCd(dto.getStandardCd());//是否符合标准-数据字典
			vo.setExecuteTemplateCd(dto.getExecuteTemplateCd());//执行模板-数据字典
			vo.setOperationAnalysis(dto.getOperationAnalysis());//运营分析
			vo.setBuyCd(dto.getBuyCd());//购车行为-数据字典 1-真实 2-不真实，存在冒名顶替
			vo.setLesseeAssetsCd(dto.getLesseeAssetsCd());//承租人资产实力-数据字典 1-良好 2-一般 3-较差
			vo.setCarConfigCd(dto.getCarConfigCd());//车辆配置-数据字典 1-熟知 2-了解 3-不了解
			vo.setFinancePlanCd(dto.getFinancePlanCd());//融资方案-数据字典 1-清楚 2-不清楚
			vo.setOperationSituationCd(dto.getOperationSituationCd());//运营情况-数据字典 1-熟知 2-了解 3-较为了解  4-不了解
			vo.setOperationExperienceCd(dto.getOperationExperienceCd());//运营经验-数据字典 1-有 2-无
			vo.setPaymentSourceCd(dto.getPaymentSourceCd());//第二还款来源-数据字典 1-有 2-无
			vo.setManagementSituation(dto.getManagementSituation());//经营状况
			vo.setAttitudeCd(dto.getAttitudeCd());//电话态度-数据字典 1-良好 2-一般 3-较差
			vo.setRiskAnalysis(dto.getRiskAnalysis());//风险分析
			vo.setManeuverabilityCd(dto.getManeuverabilityCd());//可操作性评价-数据字典
			vo.setOpinion(dto.getOpinion());//审批意见
			vo.setDisplay(dto.getDisplay());//显示
			vo.setCertificates(dto.getCertificates());//其它工作证明
			vo.setIncomeExpenditure(dto.getIncomeExpenditure());//收入支出情况
			vo.setIsInquiry(dto.getIsInquiry());//是否查询征信
			vo.setOverdueInfo(dto.getOverdueInfo());//逾期情况
			vo.setLiabilitiesInfo(dto.getLiabilitiesInfo());//负债情况
			vo.setGuarantInfo(dto.getGuarantInfo());//对外担保情况
			vo.setIsCreditStandard(dto.getIsCreditStandard());//是否符合征信标准
			vo.setOtherInfo(dto.getOtherInfo());//其它情况

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setAudGuarPassOpVOList(AudGuarPassOpVOTransform.toVOList(dto.getAudGuarPassOpDTOList()));//担保人通过意见
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto AudPrjPassOpVO
	 * @return AudPrjPassOpDTO
	 */
	public static AudPrjPassOpDTO toDTO(AudPrjPassOpVO vo) {
		AudPrjPassOpDTO dto = null;
		if (vo != null) {
			dto = new AudPrjPassOpDTO();
			dto.setId(vo.getId());
			dto.setProjectId(vo.getProjectId());//项目ID
			dto.setProIntId(vo.getProIntId());//流程实例ID
			dto.setAssetsProveCd1(vo.getAssetsProveCd1());//承租人资质 - 资产证明
			dto.setCreditInfo(vo.getCreditInfo());//法人/自然人- 信审资料
			dto.setQualificationsInfo(vo.getQualificationsInfo());//法人/自然人- 资质情况
			dto.setAssetsProveCd(vo.getAssetsProveCd());//家庭财产 - 资产证明
			dto.setResearchReport(vo.getResearchReport());//自然人- 调查报告显示
			dto.setBizInfo(vo.getBizInfo());//法人- 从事业务
			dto.setRegisterTm(vo.getRegisterTm());//注册时间
			dto.setTimes(vo.getTimes());//法人/自然人- 融资次数
			dto.setBadRecordInfo(vo.getBadRecordInfo());//法人/自然人- 不良情况
			dto.setCourtsEnforceInfo(vo.getCourtsEnforceInfo());//法人/自然人- 法院执行情况
			dto.setReturnPct(vo.getReturnPct());//收益率
			dto.setPolicyStandatrdsCd(vo.getPolicyStandatrdsCd());//执行政策标准-数据字典
			dto.setStandardCd(vo.getStandardCd());//是否符合标准-数据字典
			dto.setExecuteTemplateCd(vo.getExecuteTemplateCd());//执行模板-数据字典
			dto.setOperationAnalysis(vo.getOperationAnalysis());//运营分析
			dto.setBuyCd(vo.getBuyCd());//购车行为-数据字典 1-真实 2-不真实，存在冒名顶替
			dto.setLesseeAssetsCd(vo.getLesseeAssetsCd());//承租人资产实力-数据字典 1-良好 2-一般 3-较差
			dto.setCarConfigCd(vo.getCarConfigCd());//车辆配置-数据字典 1-熟知 2-了解 3-不了解
			dto.setFinancePlanCd(vo.getFinancePlanCd());//融资方案-数据字典 1-清楚 2-不清楚
			dto.setOperationSituationCd(vo.getOperationSituationCd());//运营情况-数据字典 1-熟知 2-了解 3-较为了解  4-不了解
			dto.setOperationExperienceCd(vo.getOperationExperienceCd());//运营经验-数据字典 1-有 2-无
			dto.setPaymentSourceCd(vo.getPaymentSourceCd());//第二还款来源-数据字典 1-有 2-无
			dto.setManagementSituation(vo.getManagementSituation());//经营状况
			dto.setAttitudeCd(vo.getAttitudeCd());//电话态度-数据字典 1-良好 2-一般 3-较差
			dto.setRiskAnalysis(vo.getRiskAnalysis());//风险分析
			dto.setManeuverabilityCd(vo.getManeuverabilityCd());//可操作性评价-数据字典
			dto.setOpinion(vo.getOpinion());//审批意见
			dto.setDisplay(vo.getDisplay());//显示
			dto.setCertificates(vo.getCertificates());//其它工作证明
			dto.setIncomeExpenditure(vo.getIncomeExpenditure());//收入支出情况
			dto.setIsInquiry(vo.getIsInquiry());//是否查询征信
			dto.setOverdueInfo(vo.getOverdueInfo());//逾期情况
			dto.setLiabilitiesInfo(vo.getLiabilitiesInfo());//负债情况
			dto.setGuarantInfo(vo.getGuarantInfo());//对外担保情况
			dto.setIsCreditStandard(vo.getIsCreditStandard());//是否符合征信标准
			dto.setOtherInfo(vo.getOtherInfo());//其它情况

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			
			dto.setAudGuarPassOpDTOList(AudGuarPassOpVOTransform.toDTOList(vo.getAudGuarPassOpVOList()));//担保人通过意见
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<AudPrjPassOpDTO>
	 * @return List<AudPrjPassOpVO>
	 */
	public static List<AudPrjPassOpVO> toVOList(List<AudPrjPassOpDTO> list) {
		List<AudPrjPassOpVO>  voList = new ArrayList<AudPrjPassOpVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AudPrjPassOpDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<AudPrjPassOpVO>
	 * @return List<AudPrjPassOpDTO>
	 */
	public static List<AudPrjPassOpDTO> toDTOList(List<AudPrjPassOpVO> list) {
		List<AudPrjPassOpDTO>  dtoList = new ArrayList<AudPrjPassOpDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AudPrjPassOpVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
